#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//单身狗1
//在一个整型数组中，只有一个数字出现一次，其他数组都是成对出现的，
//请找出那个只出现一次的数字。
//例如：
//数组中有：1 2 3 4 5 1 2 3 4，只有5出现一次，其他数字都出现2次，找出5
/*int main()
{
	int arr[9];
	for (int i = 0; i < 9; i++)
	{
		scanf("%d", &arr[i]);
	}
	for (int i = 0; i < 9; i++)
	{
		for (int j = 0; j < 9; j++)
		{
			if (arr[i] == arr[j] && i != j)
			{
				arr[i]=arr[j]=0;
			}
		}
	}
	for (int i = 0; i < 9; i++)
	{
		if (arr[i] != 0)
		{
			printf("单身狗是arr[%d]=%d", i, arr[i]);
		}
	}
	return 0;
}*/

#include <stdio.h>

int find_single_dog(int arr[], int sz)
{
    int ret = 0;
    int i = 0;
    for (i = 0; i < sz; i++)
    {
        ret ^= arr[i];
    }
    return ret;
}
int main()
{
    int arr[] = { 1,2,3,4,5,1,2,3,4 };
    int sz = sizeof(arr) / sizeof(arr[0]);
    int dog = find_single_dog(arr, sz);
    printf("%d\n", dog);


    return 0;
}

//统计二进制中1的个数
/*int main()
{
	int n = 0;
	int count = 0;
	scanf("%d", &n);
	while (n)
	{
		n = n & (n - 1);
		count++;
	}
	printf("%d", count);
	return 0;
}*/



//交换两个变量（不创建临时变量）
int main()
{
	int a = 3;
	int b = 5;
	a = a ^ b;
	b = a ^ b;//b=(a^b)^b=a^(b^b)=a
	a = a ^ b;//a=(a^b)^a=(a^a)^b=b
	printf("a=%d b=%d", a, b);
	return 0;
}